home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / c / RConfig.lha / RConfig_v1.1 / src / rccopts.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-09-20  |  2.5 KB  |  102 lines

  1. /*
  2.  * RConfig -- Replacement Library Configuration
  3.  *   Copyright 1992 by Anthon Pang, Omni Communications Products
  4.  *
  5.  * Source File: rccopts.c
  6.  * Description: CCOPTS Control
  7.  * Comments: For use within RConfig only.
  8.  */
  9.  
  10. #include <exec/types.h>
  11. #include <intuition/intuition.h>
  12. #include <libraries/gadtools.h>
  13. #include <clib/exec_protos.h>
  14. #include <clib/gadtools_protos.h>
  15. #include <clib/intuition_protos.h>
  16. #include "rc2.h"
  17.  
  18. /*
  19.  *  Global variables
  20.  */
  21. extern struct Gadget *IObject;
  22. extern ULONG IClass;
  23. extern UWORD Code;
  24. extern UWORD Qualifier;
  25. extern UWORD WaitPointerImage[];
  26. extern struct EasyStruct myES;
  27.  
  28. extern long ReadIMsg(struct Window *iwnd);
  29. extern void ClearMsgPort(struct MsgPort *mport);
  30.  
  31. int uservars = 0; /* initial value */
  32. ULONG ccopts[10] = {
  33.     TRUE, FALSE, TRUE, TRUE, TRUE,
  34.     TRUE, FALSE, FALSE, TRUE, TRUE
  35. };
  36.  
  37. void CCOPTS() {
  38.     int notok;
  39.     struct Requester waitRequest;
  40.     int i;
  41.  
  42.     /*
  43.      *  Block input to main window with invisible requester
  44.      *  and change pointer to busy ptr image as visual cue
  45.      */
  46.     InitRequester(&waitRequest);
  47.     if (Request(&waitRequest, RConfigWnd))
  48.         SetPointer(RConfigWnd, WaitPointerImage, 16, 16, -6, 0);
  49.     else {
  50.         EasyRequest(NULL, &myES, NULL, "Unable to initialize requester.");
  51.         return;
  52.     }
  53.  
  54.     notok = OpenCCOPTSWindow();
  55.     if (notok) {
  56.         EasyRequest(NULL, &myES, NULL, "Unable to open window.");
  57.         goto CCOPTSFail;
  58.     }
  59.  
  60.     while (1) {
  61.         WaitPort(CCOPTSWnd->UserPort);
  62.         while(ReadIMsg(CCOPTSWnd)) {
  63.  
  64.             switch (IClass) {
  65.               case IDCMP_REFRESHWINDOW:
  66.                 GT_BeginRefresh(CCOPTSWnd);
  67.                 CCOPTSRender(); /* re-draw texts and boxes */
  68.                 GT_EndRefresh(CCOPTSWnd, TRUE);
  69.                 break;
  70.  
  71.               case IDCMP_CLOSEWINDOW:
  72.                 goto CCOPTSQuit;
  73.                 break;
  74.  
  75.               case IDCMP_GADGETUP:
  76.                 switch (IObject->GadgetID) {
  77.                   case GD_susr:
  78.                     uservars = ~uservars;
  79.                     break;
  80.                     
  81.                   case GD_Done:
  82.                     goto CCOPTSQuit;
  83.                     break;
  84.                 }
  85.                 break;
  86.             }
  87.         }
  88.     }
  89.  
  90. CCOPTSQuit:
  91.     ClearMsgPort(CCOPTSWnd->UserPort);
  92.  
  93. CCOPTSFail:
  94.     for (i=0; i<= 9; i++) {
  95.         ccopts[i] = CCOPTSGadgets[i]->Flags & GFLG_SELECTED;
  96.     }
  97.  
  98.     CloseCCOPTSWindow();
  99.     ClearPointer(RConfigWnd);
  100.     EndRequest(&waitRequest, RConfigWnd);
  101. }
  102.